<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IgH EtherCAT Master: module.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IgH EtherCAT Master
   &#160;<span id="projectnumber">1.5.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('module_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">module.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>EtherCAT master driver module.  
<a href="#details">More...</a></p>

<p><a href="module_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7b5e78fbc39d2e9e0f09eeab29609f63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>&#160;&#160;&#160;32</td></tr>
<tr class="memdesc:a7b5e78fbc39d2e9e0f09eeab29609f63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of masters.  <a href="#a7b5e78fbc39d2e9e0f09eeab29609f63">More...</a><br /></td></tr>
<tr class="separator:a7b5e78fbc39d2e9e0f09eeab29609f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e98526a4ed34d4b47146eebc08f341"><td class="memItemLeft" align="right" valign="top"><a id="a39e98526a4ed34d4b47146eebc08f341"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a39e98526a4ed34d4b47146eebc08f341">EC_MAX_MAC_STRING_SIZE</a>&#160;&#160;&#160;(3 * ETH_ALEN)</td></tr>
<tr class="memdesc:a39e98526a4ed34d4b47146eebc08f341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum MAC string size. <br /></td></tr>
<tr class="separator:a39e98526a4ed34d4b47146eebc08f341"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad77077729d1fe5cbbce29b60bd9833e6"><td class="memItemLeft" align="right" valign="top">int __init&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#ad77077729d1fe5cbbce29b60bd9833e6">ec_init_module</a> (void)</td></tr>
<tr class="memdesc:ad77077729d1fe5cbbce29b60bd9833e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Module initialization.  <a href="#ad77077729d1fe5cbbce29b60bd9833e6">More...</a><br /></td></tr>
<tr class="separator:ad77077729d1fe5cbbce29b60bd9833e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac716459f3654d685d044a08fcb1c5f0e"><td class="memItemLeft" align="right" valign="top">void __exit&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#ac716459f3654d685d044a08fcb1c5f0e">ec_cleanup_module</a> (void)</td></tr>
<tr class="memdesc:ac716459f3654d685d044a08fcb1c5f0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Module cleanup.  <a href="#ac716459f3654d685d044a08fcb1c5f0e">More...</a><br /></td></tr>
<tr class="separator:ac716459f3654d685d044a08fcb1c5f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17aa854d45f95d637b87d676e4e36e83"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a17aa854d45f95d637b87d676e4e36e83">ec_mac_parse</a> (uint8_t *mac, const char *src, int allow_empty)</td></tr>
<tr class="memdesc:a17aa854d45f95d637b87d676e4e36e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a MAC address from a string.  <a href="#a17aa854d45f95d637b87d676e4e36e83">More...</a><br /></td></tr>
<tr class="separator:a17aa854d45f95d637b87d676e4e36e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4262f13e24a72428a0760f9e4e910597"><td class="memItemLeft" align="right" valign="top"><a id="a4262f13e24a72428a0760f9e4e910597"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a4262f13e24a72428a0760f9e4e910597">ec_master_count</a> (void)</td></tr>
<tr class="memdesc:a4262f13e24a72428a0760f9e4e910597"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of masters. <br /></td></tr>
<tr class="separator:a4262f13e24a72428a0760f9e4e910597"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6e318c0d5279ce5aad518f156962060"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#af6e318c0d5279ce5aad518f156962060">ec_mac_equal</a> (const uint8_t *mac1, const uint8_t *mac2)</td></tr>
<tr class="separator:af6e318c0d5279ce5aad518f156962060"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e5f8f264803bdcf7d8df527e2149054"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a5e5f8f264803bdcf7d8df527e2149054">ec_mac_print</a> (const uint8_t *mac, char *buffer)</td></tr>
<tr class="memdesc:a5e5f8f264803bdcf7d8df527e2149054"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a MAC address to a buffer.  <a href="#a5e5f8f264803bdcf7d8df527e2149054">More...</a><br /></td></tr>
<tr class="separator:a5e5f8f264803bdcf7d8df527e2149054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85fb1be9fffaec7aee741cc224a7b6b2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a85fb1be9fffaec7aee741cc224a7b6b2">ec_mac_is_zero</a> (const uint8_t *mac)</td></tr>
<tr class="separator:a85fb1be9fffaec7aee741cc224a7b6b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91a626e2e5f82abd07434ca87dd28ee5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a91a626e2e5f82abd07434ca87dd28ee5">ec_mac_is_broadcast</a> (const uint8_t *mac)</td></tr>
<tr class="separator:a91a626e2e5f82abd07434ca87dd28ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32aac44a0499658de8c6bccd603ed434"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a32aac44a0499658de8c6bccd603ed434">ec_print_data</a> (const uint8_t *data, size_t size)</td></tr>
<tr class="memdesc:a32aac44a0499658de8c6bccd603ed434"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs frame contents for debugging purposes.  <a href="#a32aac44a0499658de8c6bccd603ed434">More...</a><br /></td></tr>
<tr class="separator:a32aac44a0499658de8c6bccd603ed434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7081243a7dd80399794dbcb64bb8dd4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a7081243a7dd80399794dbcb64bb8dd4d">ec_print_data_diff</a> (const uint8_t *d1, const uint8_t *d2, size_t size)</td></tr>
<tr class="memdesc:a7081243a7dd80399794dbcb64bb8dd4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs frame contents and differences for debugging purposes.  <a href="#a7081243a7dd80399794dbcb64bb8dd4d">More...</a><br /></td></tr>
<tr class="separator:a7081243a7dd80399794dbcb64bb8dd4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b63e327288b0b8c0cbef1f62592f12f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a0b63e327288b0b8c0cbef1f62592f12f">ec_state_string</a> (uint8_t states, char *buffer, uint8_t multi)</td></tr>
<tr class="memdesc:a0b63e327288b0b8c0cbef1f62592f12f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints slave states in clear text.  <a href="#a0b63e327288b0b8c0cbef1f62592f12f">More...</a><br /></td></tr>
<tr class="separator:a0b63e327288b0b8c0cbef1f62592f12f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga522b0264934a68d51cc5b67f2c76ef30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ecdev_8h.html#ac0895793ea540357d225d4b8be71f2e4">ec_device_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DeviceInterface.html#ga522b0264934a68d51cc5b67f2c76ef30">ecdev_offer</a> (struct net_device *net_dev, <a class="el" href="ecdev_8h.html#a789bcd88d869f88c58bd13b451b3fd52">ec_pollfunc_t</a> poll, struct module *module)</td></tr>
<tr class="memdesc:ga522b0264934a68d51cc5b67f2c76ef30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offers an EtherCAT device to a certain master.  <a href="group__DeviceInterface.html#ga522b0264934a68d51cc5b67f2c76ef30">More...</a><br /></td></tr>
<tr class="separator:ga522b0264934a68d51cc5b67f2c76ef30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a878af0eaf81e240f83cc09bc3128f583"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a878af0eaf81e240f83cc09bc3128f583">ecrt_request_master_err</a> (unsigned int master_index)</td></tr>
<tr class="memdesc:a878af0eaf81e240f83cc09bc3128f583"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request a master.  <a href="#a878af0eaf81e240f83cc09bc3128f583">More...</a><br /></td></tr>
<tr class="separator:a878af0eaf81e240f83cc09bc3128f583"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb85534b6fcba3fa1fab6c81173b2ed1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gafb85534b6fcba3fa1fab6c81173b2ed1">ecrt_request_master</a> (unsigned int master_index)</td></tr>
<tr class="memdesc:gafb85534b6fcba3fa1fab6c81173b2ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests an EtherCAT master for realtime operation.  <a href="group__ApplicationInterface.html#gafb85534b6fcba3fa1fab6c81173b2ed1">More...</a><br /></td></tr>
<tr class="separator:gafb85534b6fcba3fa1fab6c81173b2ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64219721098ec5069eab27f1923de9ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga64219721098ec5069eab27f1923de9ea">ecrt_release_master</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga64219721098ec5069eab27f1923de9ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases a requested EtherCAT master.  <a href="group__ApplicationInterface.html#ga64219721098ec5069eab27f1923de9ea">More...</a><br /></td></tr>
<tr class="separator:ga64219721098ec5069eab27f1923de9ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga242aedc8a03b7c4d0121bc670b68bf5b"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga242aedc8a03b7c4d0121bc670b68bf5b">ecrt_version_magic</a> (void)</td></tr>
<tr class="memdesc:ga242aedc8a03b7c4d0121bc670b68bf5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version magic of the realtime interface.  <a href="group__ApplicationInterface.html#ga242aedc8a03b7c4d0121bc670b68bf5b">More...</a><br /></td></tr>
<tr class="separator:ga242aedc8a03b7c4d0121bc670b68bf5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a592ab6f7fc76f88a67a72e6fcdb21595"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a592ab6f7fc76f88a67a72e6fcdb21595">main_devices</a> [<a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>]</td></tr>
<tr class="memdesc:a592ab6f7fc76f88a67a72e6fcdb21595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main devices parameter.  <a href="#a592ab6f7fc76f88a67a72e6fcdb21595">More...</a><br /></td></tr>
<tr class="separator:a592ab6f7fc76f88a67a72e6fcdb21595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d98a9a82dace460030b39bfa8241e4c"><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a9d98a9a82dace460030b39bfa8241e4c">master_count</a></td></tr>
<tr class="memdesc:a9d98a9a82dace460030b39bfa8241e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of masters.  <a href="#a9d98a9a82dace460030b39bfa8241e4c">More...</a><br /></td></tr>
<tr class="separator:a9d98a9a82dace460030b39bfa8241e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6fdc69051135b58fda52334482310c3"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#ae6fdc69051135b58fda52334482310c3">backup_devices</a> [<a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>]</td></tr>
<tr class="memdesc:ae6fdc69051135b58fda52334482310c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backup devices parameter.  <a href="#ae6fdc69051135b58fda52334482310c3">More...</a><br /></td></tr>
<tr class="separator:ae6fdc69051135b58fda52334482310c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91a9985578486eb68c5eceb8ad9f7e7f"><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a91a9985578486eb68c5eceb8ad9f7e7f">backup_count</a></td></tr>
<tr class="memdesc:a91a9985578486eb68c5eceb8ad9f7e7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of backup devices.  <a href="#a91a9985578486eb68c5eceb8ad9f7e7f">More...</a><br /></td></tr>
<tr class="separator:a91a9985578486eb68c5eceb8ad9f7e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa02d25ef5eac3392189e2fae80a6fad"><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#aaa02d25ef5eac3392189e2fae80a6fad">debug_level</a></td></tr>
<tr class="memdesc:aaa02d25ef5eac3392189e2fae80a6fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug level parameter.  <a href="#aaa02d25ef5eac3392189e2fae80a6fad">More...</a><br /></td></tr>
<tr class="separator:aaa02d25ef5eac3392189e2fae80a6fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fbdc17f449c70c1665f21726c301dd7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a9fbdc17f449c70c1665f21726c301dd7">masters</a></td></tr>
<tr class="memdesc:a9fbdc17f449c70c1665f21726c301dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of masters.  <a href="#a9fbdc17f449c70c1665f21726c301dd7">More...</a><br /></td></tr>
<tr class="separator:a9fbdc17f449c70c1665f21726c301dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf55d5f5a414db259c65bbad33c1d6a"><td class="memItemLeft" align="right" valign="top">static struct semaphore&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#adaf55d5f5a414db259c65bbad33c1d6a">master_sem</a></td></tr>
<tr class="memdesc:adaf55d5f5a414db259c65bbad33c1d6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master semaphore.  <a href="#adaf55d5f5a414db259c65bbad33c1d6a">More...</a><br /></td></tr>
<tr class="separator:adaf55d5f5a414db259c65bbad33c1d6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0677101bf6615d80dd58c8a6fcff850d"><td class="memItemLeft" align="right" valign="top">dev_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a0677101bf6615d80dd58c8a6fcff850d">device_number</a></td></tr>
<tr class="memdesc:a0677101bf6615d80dd58c8a6fcff850d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device number for master cdevs.  <a href="#a0677101bf6615d80dd58c8a6fcff850d">More...</a><br /></td></tr>
<tr class="separator:a0677101bf6615d80dd58c8a6fcff850d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b6474dd18270738a5c4853fd93b5e70"><td class="memItemLeft" align="right" valign="top">struct class *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a9b6474dd18270738a5c4853fd93b5e70">class</a></td></tr>
<tr class="memdesc:a9b6474dd18270738a5c4853fd93b5e70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device class.  <a href="#a9b6474dd18270738a5c4853fd93b5e70">More...</a><br /></td></tr>
<tr class="separator:a9b6474dd18270738a5c4853fd93b5e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93e568278eb7135eddee0827c5c7eb69"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a93e568278eb7135eddee0827c5c7eb69">macs</a> [<a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>][2][ETH_ALEN]</td></tr>
<tr class="memdesc:a93e568278eb7135eddee0827c5c7eb69"><td class="mdescLeft">&#160;</td><td class="mdescRight">MAC addresses.  <a href="#a93e568278eb7135eddee0827c5c7eb69">More...</a><br /></td></tr>
<tr class="separator:a93e568278eb7135eddee0827c5c7eb69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5580493c8bf2eaa43174a4fe78abc72"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#ab5580493c8bf2eaa43174a4fe78abc72">ec_master_version_str</a> = EC_MASTER_VERSION</td></tr>
<tr class="memdesc:ab5580493c8bf2eaa43174a4fe78abc72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version string.  <a href="#ab5580493c8bf2eaa43174a4fe78abc72">More...</a><br /></td></tr>
<tr class="separator:ab5580493c8bf2eaa43174a4fe78abc72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab60dd3400b4ae7f326c3edb327505829"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#ab60dd3400b4ae7f326c3edb327505829">ec_device_names</a> [2]</td></tr>
<tr class="memdesc:ab60dd3400b4ae7f326c3edb327505829"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device names.  <a href="#ab60dd3400b4ae7f326c3edb327505829">More...</a><br /></td></tr>
<tr class="separator:ab60dd3400b4ae7f326c3edb327505829"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a9e581016f6c49ce672ccd2784c0b50"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="module_8c.html#a3a9e581016f6c49ce672ccd2784c0b50">ec_request_state_translation_table</a> []</td></tr>
<tr class="memdesc:a3a9e581016f6c49ce672ccd2784c0b50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Global request state type translation table.  <a href="#a3a9e581016f6c49ce672ccd2784c0b50">More...</a><br /></td></tr>
<tr class="separator:a3a9e581016f6c49ce672ccd2784c0b50"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>EtherCAT master driver module. </p>

<p class="definition">Definition in file <a class="el" href="module_8c_source.html">module.c</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a7b5e78fbc39d2e9e0f09eeab29609f63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b5e78fbc39d2e9e0f09eeab29609f63">&#9670;&nbsp;</a></span>MAX_MASTERS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_MASTERS&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum number of masters. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00046">46</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad77077729d1fe5cbbce29b60bd9833e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad77077729d1fe5cbbce29b60bd9833e6">&#9670;&nbsp;</a></span>ec_init_module()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int __init ec_init_module </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Module initialization. </p>
<p>Initializes <em>master_count</em> masters. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, else &lt; 0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00098">98</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="ac716459f3654d685d044a08fcb1c5f0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac716459f3654d685d044a08fcb1c5f0e">&#9670;&nbsp;</a></span>ec_cleanup_module()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __exit ec_cleanup_module </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Module cleanup. </p>
<p>Clears all master instances. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00181">181</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a17aa854d45f95d637b87d676e4e36e83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17aa854d45f95d637b87d676e4e36e83">&#9670;&nbsp;</a></span>ec_mac_parse()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int ec_mac_parse </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>mac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>allow_empty</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parse a MAC address from a string. </p>
<p>The MAC address must match the regular expression "([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}".</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, else &lt; 0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00303">303</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="af6e318c0d5279ce5aad518f156962060"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6e318c0d5279ce5aad518f156962060">&#9670;&nbsp;</a></span>ec_mac_equal()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_mac_equal </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>mac1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>mac2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true, if two MAC addresses are equal. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mac1</td><td>First MAC address. </td></tr>
    <tr><td class="paramname">mac2</td><td>Second MAC address. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00216">216</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a5e5f8f264803bdcf7d8df527e2149054"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e5f8f264803bdcf7d8df527e2149054">&#9670;&nbsp;</a></span>ec_mac_print()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t ec_mac_print </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>mac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print a MAC address to a buffer. </p>
<p>The buffer size must be at least EC_MAX_MAC_STRING_SIZE.</p>
<dl class="section return"><dt>Returns</dt><dd>number of bytes written. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mac</td><td>MAC address </td></tr>
    <tr><td class="paramname">buffer</td><td>Target buffer. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00242">242</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a85fb1be9fffaec7aee741cc224a7b6b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85fb1be9fffaec7aee741cc224a7b6b2">&#9670;&nbsp;</a></span>ec_mac_is_zero()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_mac_is_zero </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>mac</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true, if the MAC address is all-zero. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mac</td><td>MAC address. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00263">263</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a91a626e2e5f82abd07434ca87dd28ee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91a626e2e5f82abd07434ca87dd28ee5">&#9670;&nbsp;</a></span>ec_mac_is_broadcast()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_mac_is_broadcast </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>mac</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true, if the given MAC address is the broadcast address. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mac</td><td>MAC address. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00281">281</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a32aac44a0499658de8c6bccd603ed434"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32aac44a0499658de8c6bccd603ed434">&#9670;&nbsp;</a></span>ec_print_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_print_data </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Outputs frame contents for debugging purposes. </p>
<p>If the data block is larger than 256 bytes, only the first 128 and the last 128 bytes will be shown </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>pointer to data </td></tr>
    <tr><td class="paramname">size</td><td>number of bytes to output </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00341">341</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a7081243a7dd80399794dbcb64bb8dd4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7081243a7dd80399794dbcb64bb8dd4d">&#9670;&nbsp;</a></span>ec_print_data_diff()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_print_data_diff </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>d1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>d2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Outputs frame contents and differences for debugging purposes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">d1</td><td>first data </td></tr>
    <tr><td class="paramname">d2</td><td>second data </td></tr>
    <tr><td class="paramname">size</td><td>number of bytes to output </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00369">369</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a0b63e327288b0b8c0cbef1f62592f12f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b63e327288b0b8c0cbef1f62592f12f">&#9670;&nbsp;</a></span>ec_state_string()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t ec_state_string </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>states</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>multi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prints slave states in clear text. </p>
<dl class="section return"><dt>Returns</dt><dd>Size of the created string. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">states</td><td>slave states </td></tr>
    <tr><td class="paramname">buffer</td><td>target buffer (min. EC_STATE_STRING_SIZE bytes) </td></tr>
    <tr><td class="paramname">multi</td><td>Show multi-state mask. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00394">394</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a878af0eaf81e240f83cc09bc3128f583"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a878af0eaf81e240f83cc09bc3128f583">&#9670;&nbsp;</a></span>ecrt_request_master_err()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a>* ecrt_request_master_err </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>master_index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Request a master. </p>
<p>Same as <a class="el" href="group__ApplicationInterface.html#gafb85534b6fcba3fa1fab6c81173b2ed1" title="Requests an EtherCAT master for realtime operation. ">ecrt_request_master()</a>, but with ERR_PTR() return value.</p>
<dl class="section return"><dt>Returns</dt><dd>Requested master. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master_index</td><td>Master index. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00530">530</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a592ab6f7fc76f88a67a72e6fcdb21595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a592ab6f7fc76f88a67a72e6fcdb21595">&#9670;&nbsp;</a></span>main_devices</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* main_devices[<a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Main devices parameter. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00057">57</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a9d98a9a82dace460030b39bfa8241e4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d98a9a82dace460030b39bfa8241e4c">&#9670;&nbsp;</a></span>master_count</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int master_count</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of masters. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00058">58</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="ae6fdc69051135b58fda52334482310c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6fdc69051135b58fda52334482310c3">&#9670;&nbsp;</a></span>backup_devices</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* backup_devices[<a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Backup devices parameter. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00059">59</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a91a9985578486eb68c5eceb8ad9f7e7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91a9985578486eb68c5eceb8ad9f7e7f">&#9670;&nbsp;</a></span>backup_count</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int backup_count</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of backup devices. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00060">60</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="aaa02d25ef5eac3392189e2fae80a6fad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa02d25ef5eac3392189e2fae80a6fad">&#9670;&nbsp;</a></span>debug_level</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int debug_level</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Debug level parameter. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00061">61</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a9fbdc17f449c70c1665f21726c301dd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fbdc17f449c70c1665f21726c301dd7">&#9670;&nbsp;</a></span>masters</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a>* masters</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Array of masters. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00063">63</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="adaf55d5f5a414db259c65bbad33c1d6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaf55d5f5a414db259c65bbad33c1d6a">&#9670;&nbsp;</a></span>master_sem</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct semaphore master_sem</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Master semaphore. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00064">64</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a0677101bf6615d80dd58c8a6fcff850d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0677101bf6615d80dd58c8a6fcff850d">&#9670;&nbsp;</a></span>device_number</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dev_t device_number</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device number for master cdevs. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00066">66</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a9b6474dd18270738a5c4853fd93b5e70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b6474dd18270738a5c4853fd93b5e70">&#9670;&nbsp;</a></span>class</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct class* class</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Device class. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00067">67</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a93e568278eb7135eddee0827c5c7eb69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93e568278eb7135eddee0827c5c7eb69">&#9670;&nbsp;</a></span>macs</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t macs[<a class="el" href="module_8c.html#a7b5e78fbc39d2e9e0f09eeab29609f63">MAX_MASTERS</a>][2][ETH_ALEN]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>MAC addresses. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00069">69</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="ab5580493c8bf2eaa43174a4fe78abc72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5580493c8bf2eaa43174a4fe78abc72">&#9670;&nbsp;</a></span>ec_master_version_str</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ec_master_version_str = EC_MASTER_VERSION</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Version string. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00071">71</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="ab60dd3400b4ae7f326c3edb327505829"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab60dd3400b4ae7f326c3edb327505829">&#9670;&nbsp;</a></span>ec_device_names</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ec_device_names[2]</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line">    <span class="stringliteral">&quot;main&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;backup&quot;</span></div><div class="line">}</div></div><!-- fragment -->
<p>Device names. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00458">458</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="a3a9e581016f6c49ce672ccd2784c0b50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a9e581016f6c49ce672ccd2784c0b50">&#9670;&nbsp;</a></span>ec_request_state_translation_table</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a> ec_request_state_translation_table[]</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line">    <a class="code" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfa8a9e6590d04b31b12b03d7071d106cf5">EC_REQUEST_UNUSED</a>,  </div><div class="line">    <a class="code" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfad031578ebd61309cf3e0f618968fd3a2">EC_REQUEST_BUSY</a>,    </div><div class="line">    <a class="code" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfad031578ebd61309cf3e0f618968fd3a2">EC_REQUEST_BUSY</a>,    </div><div class="line">    <a class="code" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfab2473480381319839a822fc009aa0db5">EC_REQUEST_SUCCESS</a>, </div><div class="line">    <a class="code" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfa870ae0f25d0f780ebcaac16c920f00e3">EC_REQUEST_ERROR</a>    </div><div class="line">}</div><div class="ttc" id="group__ApplicationInterface_html_ggae94149f829f04960c62d63764a7779dfa8a9e6590d04b31b12b03d7071d106cf5"><div class="ttname"><a href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfa8a9e6590d04b31b12b03d7071d106cf5">EC_REQUEST_UNUSED</a></div><div class="ttdoc">Not requested. </div><div class="ttdef"><b>Definition:</b> <a href="ecrt_8h_source.html#l00518">ecrt.h:518</a></div></div>
<div class="ttc" id="group__ApplicationInterface_html_ggae94149f829f04960c62d63764a7779dfad031578ebd61309cf3e0f618968fd3a2"><div class="ttname"><a href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfad031578ebd61309cf3e0f618968fd3a2">EC_REQUEST_BUSY</a></div><div class="ttdoc">Request is being processed. </div><div class="ttdef"><b>Definition:</b> <a href="ecrt_8h_source.html#l00519">ecrt.h:519</a></div></div>
<div class="ttc" id="group__ApplicationInterface_html_ggae94149f829f04960c62d63764a7779dfab2473480381319839a822fc009aa0db5"><div class="ttname"><a href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfab2473480381319839a822fc009aa0db5">EC_REQUEST_SUCCESS</a></div><div class="ttdoc">Request was processed successfully. </div><div class="ttdef"><b>Definition:</b> <a href="ecrt_8h_source.html#l00520">ecrt.h:520</a></div></div>
<div class="ttc" id="group__ApplicationInterface_html_ggae94149f829f04960c62d63764a7779dfa870ae0f25d0f780ebcaac16c920f00e3"><div class="ttname"><a href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfa870ae0f25d0f780ebcaac16c920f00e3">EC_REQUEST_ERROR</a></div><div class="ttdoc">Request processing failed. </div><div class="ttdef"><b>Definition:</b> <a href="ecrt_8h_source.html#l00521">ecrt.h:521</a></div></div>
</div><!-- fragment -->
<p>Global request state type translation table. </p>
<p>Translates an internal request state to an external one. </p>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00651">651</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_c1346cf4828efdd0d2baf0d391d01b77.html">master</a></li><li class="navelem"><a class="el" href="module_8c.html">module.c</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
